package ru.teleology.cubefs.api.models;

import ru.teleology.cubefs.api.reflection.IDValue;
import ru.teleology.cubefs.api.reflection.NativeType;
import ru.teleology.cubefs.api.reflection.Types;


@NativeType(name = Types.JAVA_LOG_HANDLER_TYPE)
public abstract class AbstractJavaLogHandler extends LogHandler {

	public AbstractJavaLogHandler() {
		super(createNew(IDValue.class));
	}
	
	abstract public void begin(int level);
	abstract public void end();
	
	abstract public void log(boolean value);
	abstract public void log(byte value);
	abstract public void log(short value);
	abstract public void log(int value);
	abstract public void log(long value);
	abstract public void log(float value);
	abstract public void log(double value);
	abstract public void log(String value);
	
	abstract public void logId(long handle);
	abstract public void logPtr(long value);

	
	private static native long createNew(Class<?> idValueClass);
}
